package com.bjsxt.mappers;

import com.bjsxt.domain.UserBank;
import com.bjsxt.dto.UserBankFeignDto;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

/**
 * description:
 * OpenFeign 远程调用 UserBank <--> UserBankFeignDto 的映射转换对象
 *
 * @author ALIENWARE
 * @version v1.0.0
 * @create 5/2/2024
 **/
@Mapper(componentModel = "spring")
public interface UserBankFeignDtoMapper {
    /**
     * 获取该对象的实例，这一步与类加载器有关，有兴趣学学 JVM
     */
    // 获取该对象的实例
    UserBankFeignDtoMapper INSTANCE = Mappers.getMapper(UserBankFeignDtoMapper.class);

    /**
     * 将 UserBank 对象转换为 UserBankFeignDto 对象
     *
     * @param source UserBank 对象
     * @return 转换为的 UserBankFeignDto 对象
     */
    UserBankFeignDto convert2Dto(UserBank source);

    /**
     * 将 UserBankFeignDto 对象转换为 UserBank 对象
     *
     * @param source UserBankFeignDto 对象
     * @return 转换为的 UserBank 对象
     */
    UserBank convert2Entity(UserBankFeignDto source);

    /**
     * 将 UserBank 集合对象转换为 UserBankFeignDto 集合对象
     *
     * @param source UserBank 集合对象
     * @return 转换为的 UserBankFeignDto 集合对象
     */
    List<UserBankFeignDto> convert2Dto(List<UserBank> source);

    /**
     * 将 UserBankFeignDto 集合对象转换为 UserBank 集合对象
     *
     * @param source UserBankFeignDto 集合对象
     * @return 转换为的 UserBank 集合对象
     */
    List<UserBank> convert2Entity(List<UserBankFeignDto> source);
}
